home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / pcgames.arc / TARGET.BAS < prev    next >
BASIC Source File  |  1980-01-01  |  5KB  |  144 lines

  1. 10 '###########################################################################
  2. 20 '#                                                                        ##
  3. 30 '#               TARGET: AN ARCADE-TYPE SHOOTING GAME                     ##
  4. 40 '#                               BY                                       ##
  5. 50 '#                         BRIAN D. MANN                                  ##
  6. 60 '#    628 ELGIN TERRACE, RICHMOND VA. 23225  (804) 320-4901               ##
  7. 70 '#    IF YOU DISCOVER ANY PROBLEMS WITH THIS CODE, OR HAVE ANY            ##
  8. 80 '#    QUESTIONS, PLEASE FEEL FREE TO CALL ME.                             ##
  9. 90 '#                                                                        ##
  10. 100 '#                                                                       ##
  11. 110 '# COPYRIGHT OCTOBER, 1982 BY BRIAN D. MANN. FOR NONPROFIT DISTRIBUTION  ##
  12. 120 '# ONLY. ALL RIGHTS RESERVED.                                            ##
  13. 130 '##########################################################################
  14. 140 R = INT(VAL(RIGHT$(TIME$,2))*544):RANDOMIZE(R)
  15. 150 DIM X(297):DIM Y(297)
  16. 160 KEY OFF
  17. 170 FOR I=1 TO 10:KEY I,"":NEXT:KEY 1,"RUN"+CHR$(13):KEY 2,"WIDTH 80"+CHR$(13)
  18. 180 SCREEN 1,0
  19. 190 CLS
  20. 200 WIDTH 40
  21. 210 LOCATE 12,17:PRINT "TARGET"
  22. 220 LOCATE 15,19: PRINT "by"
  23. 230 LOCATE 18,14:PRINT "BRIAN D. MANN"
  24. 240 LOCATE 24,10:PRINT "PRESS ANY KEY TO BEGIN"
  25. 250 A$=INKEY$:IF A$="" THEN 250
  26. 260 GOSUB 400
  27. 270 GOSUB 1290
  28. 280 GOSUB 950
  29. 290 CLS
  30. 300 LOCATE 10,20:PRINT "TARGET"
  31. 310 LOCATE 12,1:PRINT "DO YOU WISH EASY(3), MODERATE(4),                   HARD(5), OR IMPOSSIBLE(6)"
  32. 320 A$ = INKEY$:IF A$ = "" THEN 320
  33. 330 SPEED = VAL(A$)
  34. 340 SCREEN 1,0
  35. 350 LOOP = 0
  36. 360 HIT=0:MISS=0
  37. 370 DEF SEG
  38. 380 IF REPEAT = 1 THEN GOTO 530
  39. 390 GOTO 530
  40. 400 REM DRAW AND SAVE CROSSHAIRS (CRSHRS%)
  41. 410 LINE (5,4)-(5,25)
  42. 420 LINE (5,4)-(10,4)
  43. 430 LINE (5,25)-(10,25)
  44. 440 LINE (35,4)-(35,25)
  45. 450 LINE (30,4)-(35,4)
  46. 460 LINE (30,25)-(35,25)
  47. 470 CIRCLE (20,14),8
  48. 480 LINE (16,14)-(24,14)
  49. 490 LINE (20,10)-(20,18)
  50. 500 DIM CRSHRS%(150)
  51. 510 GET(0,0)-(35,25),CRSHRS%
  52. 520 RETURN
  53. 530 CLS' BEGINNING OF MAIN LOOP
  54. 540 FOR I = 1 TO 100
  55. 550 X=(RND(1)*318)+1:Y=(RND(1)*198)+1
  56. 560 PSET(X,Y)
  57. 570 NEXT
  58. 580 X1=140:Y1=80
  59. 590 POKE 106,0
  60. 600 YS=7:XS=10
  61. 610 P = 0
  62. 620 S1=INT(RND*170+1):S2=INT(RND*170)+1
  63. 630 IF X1<1 THEN X1=1
  64. 640 IF X1>280 THEN X1=280
  65. 650 IF Y1<1 THEN Y1=1
  66. 660 IF Y1>170 THEN Y1=170
  67. 670 PUT(X1,Y1),CRSHRS%,XOR
  68. 680 P =P+SPEED:IF   P >297 THEN 1130
  69. 690 X(P) = P
  70. 700 Y(P) = INT(((S2-S1)/297)*X(P))+S1
  71. 710 PUT (X(P),Y(P)),S%,XOR
  72. 720 FOR D1=1 TO 10:NEXT
  73. 730 POKE 160,0
  74. 740 A$=""
  75. 750 A$ = INKEY$: PUT(X(P),Y(P)),S%,XOR:IF LEN(A$) < 2 AND A$<> " " THEN 680 ELSE A =ASC(RIGHT$(A$,1))
  76. 760 IF A=32 THEN PUT(X1,Y1),CRSHRS%,XOR:GOTO 910
  77. 770 PUT(X1,Y1),CRSHRS%,XOR
  78. 780 ON A-70 GOSUB 800,810,820,830,840,850,860,870,880,890,900
  79. 790 GOTO 630
  80. 800 SOUND 100,1:X1=X1-XS:Y1=Y1-YS:RETURN
  81. 810 SOUND 125,1:Y1=Y1-YS:RETURN
  82. 820 SOUND 150,1:X1=X1+XS:Y1=Y1-YS:RETURN
  83. 830 RETURN
  84. 840 SOUND 200,1:X1=X1-XS:RETURN
  85. 850 RETURN
  86. 860 SOUND 200,1:X1=X1+XS:RETURN
  87. 870 RETURN
  88. 880 SOUND 300,1:X1=X1-XS:Y1=Y1+YS:RETURN
  89. 890 SOUND 325,1:Y1=Y1+YS:RETURN
  90. 900 SOUND 350,1:X1=X1+XS:Y1=Y1+YS:RETURN
  91. 910 SOUND 40,1:LINE (1,199)-(X1+16,Y1+10),3:LINE (319,199)-(X1+16,Y1+10),3:FOR W1=1 TO 3:NEXT
  92. 920 LINE (1,199)-(X1+16,Y1+10),0:LINE (319,199)-(X1+16,Y1+10),0:POKE 160,0
  93. 930 IF X1>X(P) -16  AND X1<X(P) -4  AND Y1 >Y(P) - 20 AND Y1 < Y(P)-6  THEN 940 ELSE 630
  94. 940 PUT (X1,Y1),E%,XOR:FOR I%=100 TO 1000 STEP 25:SOUND I%,1:NEXT:PUT (X1,Y1),E%,XOR:HIT=HIT+1:LOOP=LOOP+1:IF LOOP=5 THEN 1160 ELSE 580
  95. 950 DEF SEG
  96. 960 CLS
  97. 970 LOCATE 1,10:PRINT "YOUR ENEMY.":LOCATE 5,1:PRINT "YOUR MISSION: DESTROY HIM":PRINT
  98. 980 PRINT "USE THE KEY PAD TO MOVE YOUR SIGHTS"
  99. 990 PUT (120,60),CRSHRS%,PSET
  100. 1000 LOCATE 13,1:PRINT "ON TO THE ENEMY SHIP AND THEN PRESS":PRINT:PRINT"             THE SPACE BAR TO FIRE."
  101. 1010 PRINT
  102. 1020 PRINT "YOU WILL HAVE 5 CHANCES"
  103. 1030 PRINT:PRINT "PRESS ANY KEY TO BEGIN"
  104. 1040 REM DRAW AND SAVE SHIP (S%)
  105. 1050 CIRCLE (28,5),2
  106. 1060 LINE (26,6)-(20,5),,BF
  107. 1070 LINE (20,6)-(10,4),,BF
  108. 1080 LINE (13,6)-(15,9),,BF
  109. 1090 LINE (8,9)-(17,11),,BF
  110. 1100 DIM S%(150)
  111. 1110 GET (8,5)-(30,11),S%
  112. 1120 A$ = INKEY$:IF A$="" THEN 1120 ELSE RETURN
  113. 1130 PUT(X1,Y1),CRSHRS%,XOR
  114. 1140 SOUND 40,20
  115. 1150 LOOP =LOOP+1:IF LOOP=5 THEN 1160 ELSE 580
  116. 1160 REM **********END OF ROUND SUMMARY
  117. 1170 CLS: PRINT"YOU HIT ";HIT;" SHIPS OUT OF FIVE."
  118. 1180 PRINT:PRINT
  119. 1190 IF HIT<=2 THEN PRINT "YOU COULDN'T HIT THE BROAD SIDE OF A    VULCAN MOON!!
  120. 1200 IF HIT=3 THEN PRINT "WITH TRAINING, YOU MIGHT BE ABLE TO     CLEAN THE GUN!"
  121. 1210 IF HIT=4 THEN PRINT "WELL, NOT BAD BUT THE ONE THAT GOT AWAY JUST DESTROYED YOUR HOME PLANET!"
  122. 1220 IF HIT=5 THEN PRINT "GOOD SHOOTING!!! CAN YOU DO IT AGAIN?"
  123. 1230 PRINT:PRINT
  124. 1240 INPUT "DO YOU WISH TO PLAY AGAIN (Y/N)?";A$
  125. 1250 POKE 106,0
  126. 1260 IF A$ = "Y" OR A$ = "y" THEN GOTO 1280
  127. 1270 IF A$ = "N" OR A$ = "n" THEN END ELSE GOTO 1230
  128. 1280 REPEAT = 1: GOTO 290
  129. 1290 REM ############# EXPLOSION DRAW AND SAVE
  130. 1300 CLS
  131. 1310 DEF SEG
  132. 1320 DEFINT E
  133. 1330 DIM E%(130)
  134. 1340 'CLS
  135. 1350 OPEN "TARGET.PIC" FOR INPUT AS #1
  136. 1360 FOR Z = 0 TO 129
  137. 1370 INPUT#1, E%(Z)
  138. 1380 NEXT
  139. 1390 CLOSE
  140. 1400 RETURN
  141.  'CLS
  142. 1350 OPEN "TARGET.PIC" FOR INPUT AS #1
  143. 1360 FOR Z = 0 TO 129
  144. 1370 INPUT#1,